﻿package net.molchat.android.scrn;


import android.view.KeyEvent;
import net.molchat.android.mess.Message;


// FIXME commented out class


// =================================================== Общий интерфейс всех окон
public interface Win {

//==================================================================== Константы
// Типы окон
public static final int UNK = 0; // Неизвестный тип окна
public static final int SPLASH = 1; // Экран загрузки
public static final int ROOM = 2; // Экран загрузки
public static final int ONE = 3; // Экран загрузки
public static final int OTHER = 64; // Другое


//// Отрисовка заголовков
////public static final int NUM_NICK_LETT = 3; // Кол-во символов в нике для отображения входящих в заголовке
//public static final int NUM_TEXT_LETT = 128; // Кол-во символов в тексте для отображения входящих в заголовке
//
//
//======================================================================= chStat
/**
 * Status changed message received.
 * 
 * @param statText
 *          New status text
 * @return If graphic window should be redrawed.
 */
public boolean chStat(String statText);


//// ============================= Получено событие состояния "в сети / не в сети"
//public void fOnline(boolean online);
//
//
//// =========================================== Освободить ресурсы и закрыть окно
//public void close(int from);
//
//
//// ===================================================== Обработать команду меню
//public void command(Command command);
//
//
//// ========================================= Вернуть перечень необходимых команд
//public boolean[] getComs();


// ====================================================================== inText
/**
 * Text message received
 * 
 * @param contType
 *          Contact type
 * @param ContNum
 *          Contact number
 * @param message
 *          Received message
 * @return If this window should be redrawn
 */
public boolean inText(int contType, int ContNum, Message message);


// =================================================================== isGraphic
/**
 * Is this window graphical or system (standard).
 * 
 * @return
 */
public boolean isGraphic();


//// ========================================================= Пересчитать размеры
////public void reSize(int newWidth, int newHeight);


/**
 * Prepare window to drawing on current display size. Set the parent for this
 * window.
 * 
 * @param winParent
 */
public void prepare(Win winParent);


/**
 * On pointer pressed event handler.
 * 
 * @param x
 * @param y
 */
public void pointerPressed(int x, int y);


/**
 * Signals to window that it was dragged.
 * 
 * @param toX
 *          - new X coordinate;
 * @param toY
 *          - new Y coorsinate;
 * 
 * @return flag that window was redrawed, so flush screen is needed.
 */
public void pointerDragged(int toX, int toY);


/**
 * On pointer 
 * 
 * @param x
 * @param y
 */
public void pointerReleased(int x, int y);


/**
 * Processor for the application timer tick event
 * 
 * @return
 */
public boolean tick();


////=============================================== Обработчик событий клавиатуры
//public boolean keyState(int keyState);


/**
 * Key down event processor
 * 
 * @param keyCode
 * @param event
 * @return
 */
public boolean keyDown(int keyCode, KeyEvent event);


}
